GitHub

您所在的位置:网站首页 price 下载 GitHub

GitHub

2023-04-14 10:08| 来源: 网络整理| 查看: 265

Kaggle California Housing Prices报告

一、问题定义

该问题来源于kaggle,主要是通过上世纪90年代的加利福利亚地区的房价的数据来训练模型,最终可以较为准确预测出对应房屋的价格。该问题实际上还是一道回归问题。

从kaggle上获取数据后,为了更好的训练,每个样本的特征属性和标签(即房屋价格)需要进行相关处理(包括取出异常值、填充缺省值、特征转换,数据转化等),然后构建多种误差较小的模型,找到最佳参数后将模型stacking融合,获取更小的误差,达到更好的预测效果,然后将模型保存起来。本次题目使用rmse均方根误差作为衡量模型标准,最终降低到0.10左右。

二、数据获取

首先将Kaggle上提供的相关的训练集和测试集下载下来,主要是train.csv和test.csv,训练集和测试集都是DataFrame数据结构。

然后查看其数据结构。训练集的shape是(1460,81)表示共有1460个样本,每个样本有81个属性,测试集的shape是(1459,80)表示共有1459个测试样本,每个测试样本有1459个属性。除此以外,通过head()函数,可以查看训练集和测试集的前5行数据,进行直观的认识,如下所示。

从上面,我们可以发现训练集有81个属性,但第一个Id属性没有意义,之后可以考虑删去。最后一个属性SalePrice是该样本数据的标签,其中有些属性是字符型,有些是数据型。而测试集则没有SalePrice标签属性,因为其不参与训练。

三、数据研究

该部分主要是通过可视化或者直接打印来查看属性之间的相关性,每个属性的分布情况等,从而为后面数据清洗,找出与标签属性SalePrice最相关的其他属性做准备。

1、作图来显示相关性

corrmat=train_data.corr()

plt.figure(figsize=(12,9))

cols=corrmat.nlargest(10,'SalePrice')['SalePrice'].index

cm=np.corrcoef(train_data[cols].values.T)

sns.set(font_scale=1.25)

hm=sns.heatmap(cm,cbar=True,annot=True,square=True,fmt='.2f', annot_kws={'size': 10},xticklabels=cols.value

2、直接输出相关度高的属性

利用DataFrame数据类型的函数corr(),并将与SalePrice属性相关度大于0.5的所有属性取出来:

Corr=train_data.corr()

print(Corr[Corr['SalePrice']>0.5]),结果显示如下。

发现除了SalePrice自身外,还有10个属性与SalePrice的相关程度较高。

四、数据准备

1、去除异常数据

上面找出10种与SalePrice最相关的属性后,由于其对标签影响最大,所以我们就要在这些属性上进行一个处理—除去少数非正常分布的属性的值。可以通过画出每个属性与SalePrice的关系的散点图来查看那些点偏离正常分布,画出的部分图像如下:

观察这些分布,可以删去一些异常点:

train_data.drop(train_data[(train_data['GrLivArea']>4000)&(train_data['SalePrice']



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3